This invention relates generally to methods and apparatus for controlling the movement of a cursor or other graphical element on a display such as a computer monitor, television, video monitor, general CRT displays, LED displays and various other display devices.
Many contemporary systems incorporate a computer monitor or other visual display device. The display device may be used not only to display graphic or photographic images but may also be used to assist in controlling the system. An example of a display used for system control is a displayed cursor used to select a menu box or icon. In many systems the operator may also need to move or otherwise manipulate cursors, or other graphical images, on the display. There are many devices generally available to do this manipulation. A computer mouse, joy stick, graphics tablet, voice commands, keyboards are just a few examples of available devices for cursor manipulation. Generally, use of these devices moves a cursor proportionally to the motion of sensor such as a ball sensor in a mouse, a pointer on a trace pad, or the motion of a lever. Common applications requiring precise control of the motion of the cursor or other graphic are computer controlled machinery, CAD, video measurement, computer animation, control of manufacturing or other types of robots, and many more. One of the drawbacks of the above listed cursor manipulation devices is that their ability to accurately position a graphical element is limited by the accuracy of the positioning device and/or the skill of the operator.
All of the mentioned cursor manipulation devices require some amount of manual dexterity. In some applications, such as computer aided drawing, image enhancement and manipulation, and any many others, it is necessary to move the cursor or graphical image as precisely as possible within very small distances. Such precise movement can be very difficult if not impossible to do. There may be limitations in the accuracy of the control device. Even with the best devices considerable manual dexterity is required. Further, over time even precise devices can become contaminated by dust, lint, etc. which makes it even more difficult to get precise control.
Several approaches have been proposed to overcome this problem. In one, approach, the ratio of controller movement to movement of the cursor is varied, so that larger movements of the control device are required to produce small movements of the cursor or graphic. This method has several limitations. For example, it does not permit the operator to know whether a graphic has been moved the smallest possible increment. Moreover, it is annoying to have to move the mouse a total of several feet (done a few inches at a time) in order to move the cursor across the display screen when this mode is being used.
Another approach, developed to overcome the limitations of the movement-ratio approach above is to expand or zoom the image. This approach also has several disadvantages for many purposes. When a digitized image is expanded by a zoom, the position or characteristics of the zoomed image portion are no longer recognizable relative to the larger image. The characteristics of the zoomed image to the larger image can often be a factor that the operator needs in order to decide how to move the cursor or graphic. Extreme zooming can, in some applications, distort the image to the point that all features of the displayed object are not recognizable. Zooming also proves insufficient when one wants to move from one point in an image to another point that would be on the opposite side of the screen if the image were not zoomed. One has to zoom, perform the graphical or cursor operations, un-zoom, move the cursor across the screen, zoom again, and then perform the desired operation. Depending on image resolution, all movement may occur with the additional problem of not being able to see the relationship of the second set of cursor operations to the first set of cursor operations just performed.
Also the ability to zoom must usually be made an inherent part of the software or hardware of a system. If the system is designed for several different applications, as is a computer, typically fine cursor control will only be available within the zoom function.
Another method of graphical or cursor positioning is to use software to overlay a screen grid on an image, and to point and click the mouse or a cursor grid to move incrementally from grid point to grid point. This solution improves control only for the specific software for which it is written and into which it is incorporated. One drawback of such a method is that grid size is not usually as small as possible because of other considerations and complications in the application program.
Fine control has been provided in some cases by velocity sensitive proportional control, i.e., to make smaller cursor movements in response to low input speeds. Other methods of fine control include hardware and software methods for imitating a slower movement. These methods permit the operator more movement of the control device for a given response. The de-sensitizing of the control should make it easier for the operator to get fine cursor position. Another method of achieving fine control is to use software to divide the display into grids and enable the operator to move the cursor one grid at a time. In this method, the increment of movement must be greater than one pixel. Moreover, the ability to use this feature is limited to software specific operations and is not available to the operator for other applications.
The above problems are overcome and the advantages of the invention are achieved in methods and apparatus for an incremental controller for generating a supplemental positioning signal for use in a display system which includes a graphical positioning device. The controller includes an input device, for inputting desired supplemental positioning information. A code generator is connected to receive the supplemental positioning information. The code generator generates a supplemental positioning signal in response to the supplemental positioning information. A controller, connected to receive the positioning signal and the supplemental positioning signal, outputs either the positioning or supplemental positioning signals
In a preferred embodiment, the controller includes first and second input buffers, wherein the first input buffer stores information generated by the graphical positioning device and the second buffer stores information generated by the code generator. In such an embodiment, a switch controlled by the controller permits the passage of the information stored in either the first or second buffers. It is especially preferred for the switch to be a preemptive mixer.